lexer grammar InternalNotation;
@header {
package furniture.parser.antlr.internal;

// Hack: Use our own Lexer superclass by means of import. 
// Currently there is no other way to specify the superclass for the lexer.
import org.eclipse.xtext.parser.antlr.Lexer;
}

T11 : 'Furniture' ;
T12 : '{' ;
T13 : 'vars' ;
T14 : ',' ;
T15 : '}' ;
T16 : 'boards' ;
T17 : 'parts' ;
T18 : 'NamedValue' ;
T19 : 'value' ;
T20 : 'Part' ;
T21 : 'placement' ;
T22 : 'board' ;
T23 : 'X' ;
T24 : 'Y' ;
T25 : 'Z' ;
T26 : 'Literal' ;
T27 : 'ValueRef' ;
T28 : 'ref' ;
T29 : 'Addition' ;
T30 : 'values' ;
T31 : 'Multiplication' ;
T32 : '-' ;
T33 : '.' ;
T34 : 'E' ;
T35 : 'e' ;
T36 : 'RectangularBoard' ;
T37 : 'thickness' ;
T38 : 'PolygonBoard' ;
T39 : 'points' ;
T40 : 'Point' ;
T41 : 'HORIZONTAL' ;
T42 : 'VERTICAL' ;
T43 : 'FACE' ;

// $ANTLR src "../furniture.Notation/src-gen/furniture/parser/antlr/internal/InternalNotation.g" 1647
RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;

// $ANTLR src "../furniture.Notation/src-gen/furniture/parser/antlr/internal/InternalNotation.g" 1649
RULE_INT : ('0'..'9')+;

// $ANTLR src "../furniture.Notation/src-gen/furniture/parser/antlr/internal/InternalNotation.g" 1651
RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');

// $ANTLR src "../furniture.Notation/src-gen/furniture/parser/antlr/internal/InternalNotation.g" 1653
RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';

// $ANTLR src "../furniture.Notation/src-gen/furniture/parser/antlr/internal/InternalNotation.g" 1655
RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;

// $ANTLR src "../furniture.Notation/src-gen/furniture/parser/antlr/internal/InternalNotation.g" 1657
RULE_WS : (' '|'\t'|'\r'|'\n')+;

// $ANTLR src "../furniture.Notation/src-gen/furniture/parser/antlr/internal/InternalNotation.g" 1659
RULE_ANY_OTHER : .;


